假设我在我的Hadoop环境中受到资源限制,我不想安排真正长时间运行的作业(即需要几天才能完成)。我正在分析大量过去的时间序列数据。我想安排mapreduce作业一次处理一天的数据(处理需要一个小时)。那么我该如何安排,以便在上一个作业完成后立即提交新作业? 最佳答案 如果您想要一种快速简单的方法,您可以编写一个shell脚本,为您要运行的每个作业依次调用hadoopjar。如果您想要更稳健的方法,可以使用ApacheOozie定义一个workflow将按顺序运行您的作业的作业。如果您是Hadoop的新手,您可能会发现使用HueGU
我使用mapred导入而不是mapreduce编写了一些mapreduce代码(我遵循了WordCountforhadoop1的example)我需要获取一些保存在作业配置中的参数。我读到了configurationget使用mapreduce时,但我使用mapred进行了所有开发,这两个导入是冲突的。有没有办法使用mapred在映射器中获取作业配置? 最佳答案 来自MapperJava文档:MapperimplementationscanaccesstheJobConfforthejobviatheJobConfigurable.
我有几个不同的作业要在Hadoop集群上运行。有些需要很少的资源,有些则需要更多,例如内存。我想在我的集群上同时运行这些作业,因为它支持Yarn。我想如果我只是将作业提交到集群,Yarn会自动决定资源需求,但我想自己指定。如何使用api或命令行来指定每个作业的资源需求? 最佳答案 您可以使用JobConf为mapper和reducer设置内存。您可以从命令行或在您的驱动程序类中执行此操作。在特定的setMemoryForMapTask(longmem)和setMemoryForReduceTask(longmem)中查找这些属性ht
需要增加我的MapReduce作业的协商超时。我尝试设置以下属性:Configurationconf=newConfiguration();conf.set("zk.connectiontimeout.ms","60000");但这并没有帮助。仍然不断收到下面给出的消息。如何以编程方式更改此值?消息如下:15/03/2711:46:40信息zookeeper.ClientCnxn:服务器上的session建立完成,sessionid=0x14bxxbbf2c9e,协商超时=30000 最佳答案 ZooKeeper配置仅在ZooKee
我不确定为什么我的Mapper和Reducer没有输出。我的代码背后的逻辑是,给定一个UUID文件(新行分隔),我想使用globStatus显示UUID可能所在的所有潜在文件的所有路径。打开并阅读文件。每个文件包含1-n行JSON。UUID在JSON中的event_header.event_id中。现在MapReduce作业运行没有错误。但是,出了点问题,因为我没有任何输出。我也不确定如何调试MapReduce作业。如果有人可以为我提供一个很棒的资源!这个程序的预期输出应该是fee90c3f-e832-4267-aa9b-250f53kc06d31914938ae-eed6-4dfa-
我想构建一个UI工具,用户可以在其中提交他们的表达式,并基于该表达式在Hadoop集群的后端触发MR作业。MR作业完成后,需要发送一封电子邮件,在电子邮件正文中包含结果摘要。我以前从未以这种方式执行过MR作业,我对如何实现这一点感到很困惑。有什么框架可以帮助我吗?或者关于如何自行实现它的任何想法?谢谢 最佳答案 hadoop中有一个叫做Oozie的组件,它是一个工作流系统。这将安排或自动化MapReduce作业。您的应用程序需要与HadoopAPI协调,我认为更好的开始方式是探索OozieAPI并对您的项目进行可行性研究。这是个好主
我有一个运行Hadoop2.6的hadoop集群。我想同时向它提交多个作业。我想知道我是否应该简单地提交多个作业并让集群处理其余的,或者我应该将它们写成一个yarn应用程序。事实上,我对Yarn应用程序开发不是很熟悉,并且确切地知道它与常规Hadoop应用程序有何不同。 最佳答案 您可以使用MR1和YARN运行MR作业。YARN与作业并行无关。它只是运行各种作业的框架。使用oozie工作流或shell脚本并行运行作业。 关于hadoop-如何将多个作业提交到hadoop集群,我们在Sta
这是我的数据样本如果第一列的索引为0,我想使用MapReduce从该文件中获取每个商店的总销售额,商店名称在索引2处,收入在索引4处这是我的映射器代码publicvoidmap(LongWritablekey,Textvalue,Contextcontext)throwsIOException,InterruptedException{Stringline=value.toString();String[]columns=line.split("\t");if(columns.length==6){StringstoreNameString=columns[2];TextstoreNa
我注意到addzone要求了解Map-Reduce和Java多线程-我看不出它们如何存在于同一个项目中。谁能给我举个例子,我们什么时候需要结合Map-Reduce和多线程? 最佳答案 如果您开发一个大型系统,则子系统需要应用不同的技术。 关于java-在MapReduce作业中使用多线程,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/31129876/
问题-我正在运行一系列包装在oozie工作流中的mapreduce作业。输入数据由一堆文本文件组成,其中大部分都相当小(KB),但我时不时地收到超过1-2MB的文件,这会导致我的作业失败。我看到作业失败的两个原因-一个,在一个或两个mr作业中,文件被解析为内存中的图形,对于更大的文件,其mr内存不足,两个,作业超时。问题-1)我相信我可以通过将mapreduce.task.timeout设置为0来禁用超时。但是我找不到任何提到这样做有任何风险的文档。2)对于OOM错误,我可以使用哪些不同的配置?此处有关潜在解决方案和风险的任何链接都会非常有帮助。3)在我最终得到OOM之前,我看到了很多